#ifndef FUNCTIONPROTOCOLGENERATOR_H
#define FUNCTIONPROTOCOLGENERATOR_H

#include <QObject>
#include <QString>
#include <QVariantList>

class FunctionProtocolGenerator : public QObject {
    Q_OBJECT
    Q_PROPERTY(QString className READ className CONSTANT)
    QString className() const { return "FunctionProtocolGenerator"; }

public:
    explicit FunctionProtocolGenerator(QObject *parent = nullptr);

    // 生成函数调用信息（包含函数名称和参数）
    QVariantMap generateCommand(const QVariantMap &protocolConfig, const QVariantMap &params);

private:

    // 格式化参数列表（带配置）
    QString formatParams(const QVariantMap &params, const QVariantList &paramConfigs);

    // 格式化参数列表（不带配置）
    QString formatParams(const QVariantMap &params);

    // 转换参数到字符串
    QString variantToString(const QVariant &param);
};

#endif // FUNCTIONPROTOCOLGENERATOR_H
